import {AppConfig} from "./appConfig";
import {AlertController} from "ionic-angular";
import {Injectable} from "@angular/core";

/**
 * 一些公共的方法可以写在这里
 * */
@Injectable()
export class CommonService {
  constructor(public appConfig: AppConfig,
              public alert: AlertController) {
  }

  /**
   * 用于http请求错误处理
   * */
  httpError(error) {
    if (error.code == 404)
      this.appConfig.presentToast('页面不存在');
    else if (error.code == 401)
      this.appConfig.presentToast('登录信息失效，请重新登录');
    else if (error.name && error.name == 'TimeoutError')
      this.appConfig.presentToast('请求超时,请检查网络设置');
    else
      this.appConfig.presentToast('系统异常,请稍后再试');
  }

  /**
   * 时间戳转string，返回“YYYY-MM-DD HH:mm:SS”
   * */
  getDateTime(Timestamp): string {
    return this.getDate(Timestamp) + ' ' + this.getTime(Timestamp);
  }

  /**
   * 时间戳转string，返回“YYYY-MM-DD”
   * */
  getDate(Timestamp): string {
    let time = new Date(Timestamp);
    return time.getFullYear() + '-' + time.getMonth() + '-' + time.getDate();
  }

  /**
   * 时间戳转string，返回“HH:mm:SS”
   * */
  getTime(Timestamp): string {
    let time = new Date(Timestamp);
    return time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds();
  }

  /**
   * 由多位时间字符串和24位随机数组成，重复概率很小，可当做uuid使用
   * */
  getUUID(): string {
    let mydate = new Date();
    let strTime1 = mydate.getDay().toString() + mydate.getMilliseconds().toString();
    let strTime2 = mydate.getHours().toString() + mydate.getSeconds().toString() + mydate.getMinutes().toString();
    return this.getRandom() + strTime1 + this.getRandom() + this.getRandom() + strTime2 + this.getRandom() + this.getRandom() + this.getRandom();
  }

  getRandom(): string {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
  }
}
